#include <iostream>
using namespace std;

// 如果传入了数据，就用传入的，否则使用默认
int func(int a, int b = 20, int c = 30)
{
  return a + b + c;
}

// 注意事项
// 1. 如果某个位置已经有了默认参数，那么从这个位置往后都必须有默认值
// int func2(int a, int b = 10, int c)
// {∂
//   return a + b + c;
// }

// 2. 如果函数声明有默认参数，函数实现就不能由默认参数
// 声明和实现只能有一个有默认参数
// int func2(int a = 10, int b = 10);
// // redefinition of default argument
// int func2(int a = 10, int b = 10) {
//   return a + b;
// }

int main(int argc, char const *argv[])
{
  cout << func(10, 30) << endl;

  return 0;
}